"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/3/17 14:33
@Description :  多线程并发安全性问题
买票
线程锁   加锁  解决多线程操作同一个资源的数据安全问题    牺牲效率  同步
"""
import  threading
train_tickets = 1000
# 获取全局锁
lock = threading.Lock()
def get_train_tickets():
    global train_tickets
    # 添加锁
    lock.acquire()
    print('目前剩余票数:',train_tickets)
    train_tickets -= 1
    if train_tickets == 0:
        raise RuntimeError('票已售罄...')
    # 释放锁
    lock.release()

for i in range(1500):
    threading.Thread(target=get_train_tickets).start()
